home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / dkbuts.zip / 3D22DXF.BAS < prev    next >
BASIC Source File  |  1991-05-16  |  4KB  |  121 lines

  1. REM
  2. REM         CAD-3D to DXF Converter
  3. REM             by Dave Edwards
  4. REM     Copyright 1990 Antic Publishing
  5. REM
  6. DIM T(5000, 2), COLORS(15)
  7. PRINT "CAD-3D to DXF Converter"
  8. PRINT "by Dave Edwards"
  9. PRINT "Copyright 1990 Antic Publishing Inc."
  10. VERNUM: INPUT "Input AutoCAD version number (9 or 10)"; VNUM
  11. IF VNUM < 9 THEN GOTO VERNUM:
  12. IF VNUM > 10 THEN GOTO VERNUM:
  13. INPUT "Input name of CAD-3D file ( .3D2 extension required) - "; NAME3D$
  14. INPUT "Input name of output DXF file ( .DXF extension required) - "; NAMEDXF$
  15. PRINT "AutoCAD Colors - other color numbers are permissible..."
  16. PRINT "1 - RED               4 - CYAN"
  17. PRINT "2 - YELLOW            5 - BLUE"
  18. PRINT "3 - GREEN             6 - MAGENTA"
  19. PRINT "           7 - WHITE"
  20. OPEN "R", #1, NAME3D$, 1
  21. FIELD 1, 1 AS VALUE$
  22. OPEN "O", #2, NAMEDXF$
  23. PRINT #2, "0": PRINT #2, "SECTION"
  24. PRINT #2, "2": PRINT #2, "ENTITIES"
  25. GET #1: GET #1
  26. GOSUB TYPE1: NO = NI
  27. PRINT "Number of Objects - "; NO
  28. FOR X = 1 TO 32
  29.    GET #1: GET #1
  30. NEXT X
  31. FOR X = 0 TO 15
  32.    GET #1: GET #1
  33. NEXT X
  34. GET #1: GET #1: PALTYPE = VAL("&H" + HEX$(ASC(VALUE$)))
  35. IF PALTYPE = 1 THEN GOTO SHADE14:
  36. IF PALTYPE = 2 THEN GOTO CUSTOM:
  37. PRINT "CAD-3D Color Palette Type is Seven-Shade"
  38. INPUT "Input Color number for First Primary color - "; FIRSTCOLOR
  39. FOR X = 0 TO 7: COLORS(X) = FIRSTCOLOR: NEXT X
  40. INPUT "Input Color number for Second Primary color - "; SECONDCOLOR
  41. FOR X = 8 TO 15: COLORS(X) = SECONDCOLOR: NEXT X
  42. GOTO START:
  43. SHADE14: 
  44. PRINT "CAD-3D Color Palette Type is Fourteen-Shade"
  45. INPUT "Input Color number for Primary color - "; PRIMCOLOR
  46. FOR X = 0 TO 15: COLORS(X) = PRIMCOLOR: NEXT X
  47. GOTO START:
  48. CUSTOM:
  49. PRINT "CAD-3D Color Palette Type is Custom"
  50. FOR X = 0 TO 15
  51.    PRINT "Input Color Number for Custom Color #"; X; : INPUT COLORNUM
  52.    COLORS(X) = COLORNUM
  53. NEXT X
  54. START:
  55. GET #1: GET #1: GET #1: GET #1
  56. FOR X = 1 TO 150
  57.    GET #1
  58. NEXT X
  59. FOR I = 1 TO NO
  60.    OBJNAME$ = ""
  61.    FOR J = 1 TO 9
  62.       GET #1
  63.       IF ASC(VALUE$) = 0 THEN SW1 = 1
  64.       IF SW1 <> 1 THEN OBJNAME$ = OBJNAME$ + VALUE$
  65.    NEXT J
  66.    SW1 = 0
  67.    PRINT "Processing Object - "; OBJNAME$
  68.    GOSUB TYPE1: NV = NI
  69.    FOR K = 0 TO NV - 1
  70.       GOSUB TYPE2:
  71.       T(K, 0) = NR
  72.       GOSUB TYPE2:
  73.       T(K, 1) = NR
  74.       GOSUB TYPE2:
  75.       T(K, 2) = NR
  76.    NEXT K
  77.    GOSUB TYPE1: NF = NI
  78.    FOR L = 0 TO NF - 1
  79.       PRINT #2, "0": PRINT #2, "3DFACE": PRINT #2, "8": PRINT #2, OBJNAME$
  80.       GOSUB TYPE1: PRINT #2, "10": PRINT #2, T(NI, 0)
  81.       PRINT #2, "20": PRINT #2, T(NI, 1)
  82.       PRINT #2, "30": PRINT #2, T(NI, 2): N4 = NI
  83.       GOSUB TYPE1: PRINT #2, "11": PRINT #2, T(NI, 0)
  84.       PRINT #2, "21": PRINT #2, T(NI, 1)
  85.       PRINT #2, "31": PRINT #2, T(NI, 2)
  86.       GOSUB TYPE1: PRINT #2, "12": PRINT #2, T(NI, 0)
  87.       PRINT #2, "22": PRINT #2, T(NI, 1)
  88.       PRINT #2, "32": PRINT #2, T(NI, 2)
  89.       PRINT #2, "13": PRINT #2, T(N4, 0)
  90.       PRINT #2, "23": PRINT #2, T(N4, 1)
  91.       PRINT #2, "33": PRINT #2, T(N4, 2)
  92.       IF VNUM = 9 THEN GET #1: GOTO VER9:
  93.       PRINT #2, "70"
  94.       GET #1: N5 = VAL("&H" + HEX$(ASC(VALUE$)))
  95.       IF N5 = 7 THEN N6 = 0
  96.       IF N5 = 3 THEN N6 = 1
  97.       IF N5 = 5 THEN N6 = 2
  98.       IF N5 = 1 THEN N6 = 3
  99.       IF N5 = 6 THEN N6 = 4
  100.       IF N5 = 2 THEN N6 = 5
  101.       IF N5 = 4 THEN N6 = 6
  102.       IF N5 = 0 THEN N6 = 7
  103.       PRINT #2, N6
  104. VER9: PRINT #2, "62"
  105.       GET #1: N7 = VAL("&H" + HEX$(ASC(VALUE$)))
  106.       PRINT #2, COLORS(N7)
  107.    NEXT L
  108. NEXT I
  109. PRINT #2, "0": PRINT #2, "ENDSEC": PRINT #2, "0": PRINT #2, "EOF"
  110. CLOSE : END
  111. TYPE1: GET #1: N1 = VAL("&H" + HEX$(ASC(VALUE$))) * 256
  112.        GET #1: N2 = VAL("&H" + HEX$(ASC(VALUE$)))
  113.        NI = N1 + N2
  114.        RETURN
  115. TYPE2: GET #1: N1 = VAL("&H" + HEX$(ASC(VALUE$))) * 256
  116.        GET #1: N2 = VAL("&H" + HEX$(ASC(VALUE$)))
  117.        N = N1 + N2
  118.        IF N > 4500 THEN N = N - 65536
  119.        NR = N / 100
  120.        RETURN
  121.